//获取axios的实例
import $localStorage from "@/api/storage/localStorage";
import router from "@/router/router";
import {constant} from "@/api/constant/constant";
import {message} from "ant-design-vue";

const axios = require('axios');
const $http = axios.create({
    baseURL: constant.baseUrl,
    timeout: 30000,
    headers: {
        'Content-Type': 'application/json; charset=utf-8'
    }
});

//添加请求拦截器
$http.interceptors.request.use((config) => {
    //在请求之前做些什么
    let token = $localStorage.get('token');
    if (token != null) {
        config.headers['token'] = token
    }
    return config;
}, (error => {
    //对请求错误做些什么
    return Promise.reject(error)
}))
// 添加响应拦截器
$http.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    if (response.data.code === 10006) {
        return router.push('/login')
    }
    if (response.data.code===10008){
        message.info(response.data.msg)
        return router.push('/login')
    }
    return response
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
});

export default $http
